iT邦幫忙

2023 iThome 鐵人賽

DAY 13
1

RestController

ControllerRestController 是 Spring Framework 中用於建立控制器的兩種不同類型的註解,它們在處理 HTTP 請求時有一些重要的區別。

Controller

雖然上一篇章提到過(這裡在讓我們再複習一次)

  • @Controller 註解通常用於建立傳統Web 應用程式的 Controller,。
  • Controller方法通常返回視圖名稱或模型,用於渲染 HTML 頁面。
  • @Controller 類中的方法默認情況下不會將響應主體內容以 JSON 或 XML 格式返回,而是返回 HTML。
@Controller
public class MyController {

    @GetMapping("/hello")
    public String helloWorld() {
        return "hello"; // 返回視圖名稱 (或是可以回傳ModelandView)
    }
}

RestController:

  • @RestController 註解用於建立 RESTful Web 服務的控制器,這些控制器通常用於直接返回數據,而不是 HTML 頁面。
  • @RestController 類中的方法默認情況下,Spring 會將其自動序列化為 JSON 或 XML 格式,並將其作為Response主體發送給客戶端。
@RestController
public class MyRestController {

    @GetMapping("/api/hello")
    public Map<String, String> helloWorld() {
        Map<String, String> response = new HashMap<>();
        response.put("message", "Hello, world!");
        return response; // 返回 JSON 數據
    }
}

懶人包:

  • @Controller 通常用於傳統的 Web 應用程式,回傳 HTML 頁面名稱。
  • @RestController 用於建立 RESTful Web 服務,直接返回數據,通常是 JSON 或 XML 格式。

再Controller內的Resuest跟Response也有許多變體的註解,讓我們留到下一篇再談。

參考資料

https://www.baeldung.com/spring-controller-vs-restcontroller
https://www.codingninjas.com/studio/library/difference-between-controller-and-restcontroller


上一篇
Day 12 : MVC 的C,Controller
下一篇
Day 14 : RequestMapping、GetMapping 和 PostMapping
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言